package DAO1;
import java.sql.Connection;
import java.sql.DriverManager;
/**
 * 数据库连接管理类（DAO模式基础设施层），属于第一部分
 *
 * 本类封装了JDBC数据库连接的核心操作，提供：
 * 1. 驱动加载与连接建立
 * 2. 连接对象获取
 * 3. 安全连接关闭
 */
public class DatabaseConnection {
    private static final String DBDRIVER = "com.mysql.jdbc.Driver";
    private static final String DBURL = "jdbc:mysql://localhost:3306/smile";
    private static final String DBUSER = "root";
    private static final String DBPASSWORD = "Chengge33";
    private Connection conn;
    /**
     * 构造方法：执行数据库连接初始化
     * @throws Exception 当出现以下情况时抛出异常：
     *                   - 驱动类未找到（ClassNotFoundException）
     *                   - 连接参数错误（SQLException）
     */
    public DatabaseConnection() throws Exception {
        Class.forName(DBDRIVER);
        this.conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
    }
    /**
     * 获取数据库连接对象*/
    public Connection getConnection() {
        return this.conn;
    }

    public void close() throws Exception {
        if (this.conn != null) {
            try {
                if (!this.conn.isClosed()) {
                    this.conn.close();
                }
            } catch (Exception e) {
                System.err.println("数据库连接关闭异常: " + e.getMessage());
                throw e;
            }
        }
    }
}